Text Preprocessing Techniques (Tokenization, Padding)

Machine Learning - টেন্সরফ্লো (TensorFlow) Natural Language Processing (NLP) |
122
122

টেক্সট প্রিপ্রসেসিং (Text Preprocessing) মেশিন লার্নিং এবং প্রাকৃতিক ভাষা প্রক্রিয়াকরণের (Natural Language Processing, NLP) একটি গুরুত্বপূর্ণ অংশ। এটি মূলত ডেটা পরিষ্কার এবং প্রস্তুত করার জন্য বিভিন্ন কৌশল ব্যবহার করে, যাতে মডেল আরও সঠিকভাবে কাজ করতে পারে। টোকেনাইজেশন (Tokenization) এবং প্যাডিং (Padding) দুইটি প্রধান প্রিপ্রসেসিং কৌশল যা টেক্সট ডেটা প্রস্তুত করতে ব্যবহৃত হয়।


Tokenization (টোকেনাইজেশন)

টোকেনাইজেশন হল টেক্সট ডেটাকে ছোট ছোট ইউনিট বা অংশে ভাগ করার প্রক্রিয়া। এই ইউনিটগুলোকে টোকেন বলা হয়। টোকেনগুলি সাধারণত শব্দ, বাক্যাংশ বা অক্ষর হতে পারে এবং এগুলি NLP মডেলগুলির ইনপুট হিসেবে ব্যবহৃত হয়।

কীভাবে কাজ করে:

টোকেনাইজেশন টেক্সট ডেটাকে ছোট ছোট একক (টোকেন) এ বিভক্ত করে, যেমন:

  • শব্দ টোকেনাইজেশন (Word Tokenization): টেক্সটকে পৃথক শব্দের মধ্যে বিভক্ত করা হয়।
  • অক্ষর টোকেনাইজেশন (Character Tokenization): প্রতিটি অক্ষরকে আলাদা টোকেনে ভাগ করা হয়।
  • বাক্য টোকেনাইজেশন (Sentence Tokenization): পুরো টেক্সটকে পৃথক বাক্যে বিভক্ত করা হয়।

উদাহরণ:

ধরা যাক, আপনার কাছে একটি টেক্সট "I love machine learning."।

  • শব্দ টোকেনাইজেশনে এটি হতে পারে: ['I', 'love', 'machine', 'learning']
  • অক্ষর টোকেনাইজেশনে এটি হতে পারে: ['I', ' ', 'l', 'o', 'v', 'e', ' ', 'm', 'a', 'c', 'h', 'i', 'n', 'e', ' ', 'l', 'e', 'a', 'r', 'n', 'i', 'n', 'g', '.']

টোকেনাইজেশন এর সুবিধা:

  • এটি মডেলকে ডেটা বুঝতে সাহায্য করে।
  • টেক্সট থেকে গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি আলাদা করার মাধ্যমে মডেলের কর্মক্ষমতা উন্নত হয়।

Padding (প্যাডিং)

প্যাডিং একটি টেক্সট প্রিপ্রসেসিং কৌশল যেখানে ইনপুট সিকোয়েন্সের দৈর্ঘ্য সমান করা হয়। টেক্সট ডেটার প্রতিটি সিকোয়েন্সের দৈর্ঘ্য সাধারণত ভিন্ন হয়, এবং অধিকাংশ মডেল সমান দৈর্ঘ্যের ইনপুট নেয়। তাই ছোট সিকোয়েন্সগুলিকে নির্দিষ্ট দৈর্ঘ্যের করতে প্যাডিং ব্যবহার করা হয়।

কীভাবে কাজ করে:

প্যাডিং সিকোয়েন্সগুলির মধ্যে কোন একটি নির্দিষ্ট দৈর্ঘ্য নিশ্চিত করে, এবং এটি মূলত ছোট সিকোয়েন্সের শেষে 0 বা অন্য কোনো প্যাডিং ভ্যালু যোগ করে।

উদাহরণ:

ধরা যাক, আপনার সিকোয়েন্সগুলি নিম্নরূপ:

  • ['I love NLP'] (দৈর্ঘ্য: 3)
  • ['I love machine learning'] (দৈর্ঘ্য: 4)

এখন যদি আমরা একটি সর্বোচ্চ দৈর্ঘ্য নির্ধারণ করি, যেমন 5, তবে প্যাডিং এর মাধ্যমে:

  • ['I love NLP', 0]
  • ['I love machine learning'] (এটি প্রথমেই প্যাড করা যাবে না, কারণ এটি 5-এর সমান)

এখানে, আপনি একটি নির্দিষ্ট দৈর্ঘ্য বজায় রাখতে 0 (বা অন্য কোনো ভ্যালু) যোগ করছেন।

প্যাডিং এর সুবিধা:

  • এটি ইনপুট সিকোয়েন্সগুলির দৈর্ঘ্যকে সমান করে এবং মডেল ট্রেনিংয়ের জন্য উপযুক্ত করে তোলে।
  • প্যাডিং মডেলকে ছোট সিকোয়েন্সের জন্য অতিরিক্ত তথ্য প্রদান করে না, কিন্তু তা নিশ্চিত করে যে সমস্ত সিকোয়েন্স মডেলে সঠিকভাবে প্রক্রিয়া হবে।

Text Preprocessing Example with Tokenization and Padding

এখন, আমরা একটি সাধারণ টেক্সট প্রিপ্রসেসিং উদাহরণ দেখবো যেখানে টোকেনাইজেশন এবং প্যাডিং উভয়ই করা হবে:

import tensorflow as tf
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences

# উদাহরণ টেক্সট ডেটা
texts = ["I love machine learning", "Deep learning is amazing", "I love NLP"]

# টোকেনাইজেশন
tokenizer = Tokenizer()
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)

# প্যাডিং
padded_sequences = pad_sequences(sequences, padding='post', maxlen=6)

# ফলাফল
print("Tokenized Sequences:", sequences)
print("Padded Sequences:", padded_sequences)

আউটপুট:

Tokenized Sequences: [[1, 2, 3, 4], [5, 3, 6, 7], [1, 2, 8]]
Padded Sequences: [[1, 2, 3, 4, 0, 0], [5, 3, 6, 7, 0, 0], [1, 2, 8, 0, 0, 0]]

এখানে:

  • টোকেনাইজেশন: প্রতিটি শব্দকে একটি সংখ্যা দিয়ে রূপান্তরিত করা হয়েছে।
  • প্যাডিং: ছোট সিকোয়েন্সগুলোকে সমান দৈর্ঘ্য 6 তে পরিণত করা হয়েছে এবং অতিরিক্ত স্থানগুলোকে 0 দিয়ে পূর্ণ করা হয়েছে।

সারাংশ

  • টোকেনাইজেশন হল টেক্সট ডেটাকে ছোট ছোট টুকরো বা টোকেনে ভাগ করার প্রক্রিয়া।
  • প্যাডিং হল টেক্সট সিকোয়েন্সের দৈর্ঘ্য সমান করার প্রক্রিয়া, যাতে মডেল সহজে ডেটা গ্রহণ এবং প্রক্রিয়া করতে পারে।
  • এই দুটি কৌশলই টেক্সট ডেটার প্রিপ্রসেসিংয়ের জন্য অত্যন্ত গুরুত্বপূর্ণ, বিশেষত NLP মডেলগুলির ক্ষেত্রে।
Content added By
Promotion